Passer au contenu principal

Préfixes de développement : get, find, fetch, load, retrieve - Comprendre les différences et les règles d'utilisation

  • Lors de l'utilisation de langages de programmation, les préfixes tels que get, find, fetch, load et retrieve sont souvent utilisés dans les noms de méthodes ou de fonctions. Ils sont couramment utilisés lors de la récupération de données depuis des bases de données, des fichiers externes ou des API.
  • En développant, j'ai voulu écrire du code avec cohérence, et je me suis interrogé sur les différences et les cas d'utilisation de ces préfixes. J'ai donc recherché les différences et les cas d'utilisation de ces préfixes.
  • Les conventions de nommage peuvent varier selon l'entreprise ou le développeur. Dans ce cas, j'ai essayé de trouver des règles couramment utilisées, mais en pratique, elles peuvent différer selon le cas d'utilisation.
  • Bien que ces préfixes puissent sembler similaires, chacun a des significations et des contextes d'utilisation légèrement différents. Explorons leurs différences.
  • Je n'ai pas eu l'opportunité de travailler avec des conventions de développement établies dans de grandes entreprises, donc mes connaissances sur ce sujet sont quelque peu limitées. Le contenu peut ne pas être entièrement exact, veuillez donc le lire comme référence uniquement.

1. get

Le préfixe get est couramment utilisé pour récupérer ou accéder à des valeurs spécifiques. Cela implique que l'opération retourne un résultat unique ou un élément spécifique d'une collection. Par exemple :

  • getUser() - Récupère un objet utilisateur unique.
  • getProductById(id) - Récupère un objet produit correspondant à l'ID fourni.
  • getUsers() - Récupère tous les objets utilisateur.

2. find

Le préfixe find est généralement utilisé pour rechercher et trouver des éléments qui correspondent à certaines conditions. La différence avec get est que find semble se concentrer davantage sur la recherche et la découverte. Cela implique que l'opération retourne plusieurs résultats ou une collection d'éléments. Par exemple :

  • findUsersByRole(role) - Trouve tous les utilisateurs ayant un rôle spécifique.
  • findProductsByCategory(category) - Trouve tous les produits appartenant à une catégorie spécifique.
  • findUsersByAge(age) - Trouve tous les utilisateurs d'un âge spécifique.

2.1. find vs get

  • Bien que cela ne soit pas officiellement défini, sur la base des discussions de diverses personnes sur Internet, les différences entre find et get sont les suivantes :
    • get : Se concentre sur la récupération de quelque chose qui est définitivement déterminé. Retourne un résultat unique ou un élément, et n'est généralement pas utilisé lorsqu'il pourrait n'y avoir aucun résultat.
    • find : Se concentre sur la recherche et la découverte. Retourne plusieurs résultats ou une collection d'éléments, et les résultats de recherche peuvent être vides.
  • L'exemple de l'article de blog How do you use "find" vs "get" prefix? peut aider à comprendre ce concept. Voici un exemple tiré de cet article :
    • getOneById : Lance une erreur s'il n'y a aucun résultat pour cet ID.
    • findOneById : Retourne null s'il n'y a aucun résultat pour cet ID.
public async getOneById(id: number): Promise<User> {
const user = await this.userRepository
.createQueryBuilder("u")
.where("u.id = :id", {id})
.getOne();

if (!user)
throw new Error(`User with ID "${id.toString()}" not found.`);

return user;
}
public async findOneById(id: number): Promise<User> {
const user = await this.userRepository
.createQueryBuilder("u")
.where("u.id = :id", {id})
.getOne();

return user;
}

3. fetch vs load vs retrieve

  • Les préfixes fetch, load et retrieve sont d'autres préfixes utilisés pour récupérer des données. Ils sont principalement utilisés pour récupérer des données depuis des réseaux ou des bases de données. Bien que leurs différences ne soient pas nettes, ils sont généralement utilisés comme suit :
    • fetch : Utilisé pour récupérer des données depuis des réseaux. Principalement associé aux appels d'API.
    • load : Couramment utilisé pour récupérer des données externes telles que des bases de données ou des données de fichiers depuis S3.
    • retrieve : Utilisé pour récupérer des données. Semble être utilisé moins fréquemment que fetch et load.

4. Résumé

  • get est utilisé pour récupérer un résultat unique ou un élément, tandis que find est utilisé pour rechercher plusieurs résultats ou éléments.
  • fetch, load et retrieve sont utilisés pour récupérer des données. fetch est utilisé pour récupérer des données depuis des réseaux, load est utilisé pour récupérer des données de base de données ou de fichiers, et retrieve est utilisé pour récupérer des données.
    • Cependant, la fréquence d'utilisation de fetch, load et retrieve est inférieure à celle de get et find, et les distinctions sont relativement moins claires.
  • Ces préfixes sont des règles d'utilisation générales, et en pratique, ils peuvent varier selon l'endroit où ils sont utilisés, le langage de programmation ou le framework. Pour une utilisation précise, veuillez vous référer à la documentation spécifique du projet ou aux normes de codage.

Références